﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.CompilerServices;

using IBApi;

namespace IBRx {
	public class ContractDetailsBase : IBResponse { }

	public class ContractDetailsEvent : ContractDetailsBase {
		public int ReqId { get; private set; }
		public ContractDetails ContractDetails { get; private set; }

		[MethodImplAttribute(MethodImplOptions.AggressiveInlining)]
		public ContractDetailsEvent(int reqId, ContractDetails contractDetails) {
			this.ReqId = reqId;
			this.ContractDetails = contractDetails;
		}
	}

	public class BondContractDetails : ContractDetailsBase {
		public int ReqId { get; private set; }
		public ContractDetails Contract { get; private set; }

		[MethodImplAttribute(MethodImplOptions.AggressiveInlining)]
		public BondContractDetails(int reqId, ContractDetails contract) {
			this.ReqId = reqId;
			this.Contract = contract;
		}
	}

	public class ContractDetailsEnd : ContractDetailsBase {
		public int ReqId { get; private set; }

		[MethodImplAttribute(MethodImplOptions.AggressiveInlining)]
		public ContractDetailsEnd(int reqId) {
			this.ReqId = reqId;
		}
	}
}
